﻿namespace CoreEx.Common.Validation
{
    /// <summary>
    /// Represents a class that is capable of injecting additional validation rules 
    /// that should apply to the target type.
    /// </summary>
    /// <typeparam name="T">The target type to validate.</typeparam>
    public interface IRuleInjector<T>
    {
        /// <summary>
        /// Allows additional validation rules to be added to the <see cref="IValidationRule{T}"/> instance.
        /// </summary>
        /// <param name="validationRules">The <see cref="IValidationRules{T}"/> instance 
        /// that contains the validation rules for the target type.</param>
        void Inject(IValidationRules<T> validationRules);
    }
}
